﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Promocot.Models;

namespace Promocot.Controllers
{
    public class SesionController : Controller
    {
        //
        // GET: /Sesion/
        ClientomaticDBContainer dbquery = new ClientomaticDBContainer();

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult loguear(FormCollection form)
        {
            String login = String.IsNullOrEmpty(form.Get("login")) ? " " : form.Get("login");
            String clave = String.IsNullOrEmpty(form.Get("clave")) ? " " : form.Get("clave");
           var valido_usuario = dbquery.UsuarioSet.Where(p => p.login == login && p.password == clave).FirstOrDefault<Usuario>();
            ViewBag.status = "Red";

            if (valido_usuario == null)
            {
                
                ViewBag.login = "Error. Verifique los datos suministrados";

            }
            else {

                if (!valido_usuario.activo) {

                    ViewBag.login = "Error. Ud ha sido desactivado del sistema";
                    return View();
                }




                ViewBag.status = "Green";
                ViewBag.login = "Inicio de sesión exitoso. "+DateTime.Now.ToString();

                Session.Add("login", form.Get("login"));
                Session.Add("clave", form.Get("clave"));
                Session.Add("usuarioID", valido_usuario.cod_usuario);
                Session.Add("empresa", valido_usuario.Empresa.nombre_empresa);
                Session.Add("empresaID", valido_usuario.Empresa.cod_empresa);
                Session.Add("rol",valido_usuario.RolSet.cod_rol);

                /*si la empresa donde labora el usuario es passarini, lo mandamos a otra vista*/
                if (valido_usuario.Empresa.nombre_empresa == "passarini") {
                    return View("session_pasarini",valido_usuario);
                }

            }
            
            return View();
        }

        public ActionResult perfil() {


            var usuario = (String)Session["login"];

            var p = dbquery.UsuarioSet.Where(filtro => filtro.login == usuario).Single<Usuario>();

            return View(p);
        }

        public ActionResult salir() {

            Session.RemoveAll();
            Session.Clear();
            Session.Abandon();
            return RedirectToAction("Index", "Home");
        }


        public int Count() {
            return Session.Count;
        }

        public Int32 Conectado() {
            return (Int32)Session["usuarioID"];
        }


       

    }
}
 